/**
 * \file IOutilsGraphique.h
 * \author Catalin BLAJ
 * \author Vincent JACQUEMIN
 * \date 28 Novembre 2013
 *
 * Fichier header IOutilsGraphique.c pour le programme du Sudoku.
 */

#ifndef OUTILSGRAPHIQUE_H
#define OUTILSGRAPHIQUE_H

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>
#include <SDL/SDL.h>
#include <SDL/SDL_mixer.h>
#include <SDL/SDL_image.h>

#define TAILLE_CASE 40

/**
 * \brief Gestion du clic de la souris.
 * \param event : Evenement courant.
 * \param xmin : abscisse minimale du curseur.
 * \param xmax : abscisse maximale du curseur.
 * \param ymin : ordonnée minimale du curseur.
 * \param ymax : abscisse maximale du curseur.
 * \return Renvoie vrai si un clic gauche se produit
 *
 * Cette fonction renvoie vrai si l'utilisateur a cliqué gauche sur la souris entre les bornes en paramètre.
 */
bool IO_gestionClicSouris(SDL_Event* event, int xmin, int xmax, int ymin, int ymax);

/**
 * \brief Gestion du déplacement de la souris.
 * \param event : Evenement courant.
 * \param xmin : abscisse minimale du curseur.
 * \param xmax : abscisse maximale du curseur.
 * \param ymin : ordonnée minimale du curseur.
 * \param ymax : abscisse maximale du curseur.
 * \return Renvoie vrai si un déplacement de souris se produit
 *
 * Cette fonction renvoie vrai si l'utilisateur a déplacé la souris entre les bornes en paramètre.
 */
bool IO_gestionDeplacementSouris(SDL_Event* event, int xmin, int xmax, int ymin, int ymax);

/**
 * \brief Gestion du déplacement de la souris.
 * \param ecran : Fenêtre courante.
 * \param event : Evenement courant.
 *
 * Cette fonction met en pause la musique si elle est jouée, sinon elle la joue.
 */
void IO_gestionSon(SDL_Surface* ecran, SDL_Event* event);

#endif
